//
//  SQLiteManager.swift
//  FMDBDemo
//
//  Created by liii on 16/8/28.
//  Copyright © 2016年 liii. All rights reserved.
//

import Foundation

// 数据库文件名
private let dbName = "status.db"

class SQLiteManager {
    
    // 单例设计模式:No.1 单例对象
    static let sharedManager = SQLiteManager()
    
    // 用于操作数据库的全局对象
    let queue: FMDatabaseQueue
    
    // 单例设计模式:No.2 私有化构造方法
    private init() {
    
        // 数据库存储路径
        let path = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).last! as NSString).stringByAppendingPathComponent(dbName)
        
        // 如果数据库文件存在, 就直接打开链接; 如果不存在, 就创建数据库文件, 再打开连接
        // 数据库连接一经打开, 不需要关闭, 因为数据库在本地沙盒中
        queue = FMDatabaseQueue(path: path)
        
        print(path)
    }
    
    /// 创建数据表
    func createTable() {
        // 创表sql
        let sql_ct =
        "CREATE TABLE IF NOT EXISTS T_Status (" +
            "statusId integer PRIMARY KEY NOT NULL," +
            "status text," +
            "userId integer" +
        ") ;"
        
        // 执行sql语句
        queue.inDatabase { (db) -> Void in
            if db.executeStatements(sql_ct) {
                print("创表成功!")
            } else {
                print("创表失败!")
            }
        }
    }
}
